import request from '@/utils/request'
import request2 from '@/utils/request2'
import { projectApiUrl, projectApisUrl, commonApiUrl, materialApiUrl, organizationApiUrl, userApiUrl, unionApiUrl } from './config'

/**
 * 获取业务上的通知待办
 * @param {Object} data eg. data.receiverId 接收人的userId data.status: （0正常 1关闭）
 */
export function getBusinessTodoList(data) {
  return request({
    url: unionApiUrl + '/sysNotice/getPageSysNotice',
    method: 'post',
    data
  })
}

/**
 * 完成业务待办
 * @param {object} eg. { id: xxxx }
 */
export function finishBusinessTodo(data) {
  return request({
    url: unionApiUrl + '/sysNotice/updateByPrimaryKeySelective',
    method: 'post',
    data: { ...data, status: 1 } // status: （0正常 1关闭）
  })
}

/**
 * 删除业务待办
 * @param {object} eg. { id: xxxx }
 */
export function sysNoticeDeleteByBusinessId(data) {
  return request({
    // url: unionApiUrl + '/sysNotice/deleteByBusinessId/businessId?',
    url: `${unionApiUrl}/sysNotice/delByBusinessId`,
    method: 'post',
    data: { businessId: data.id }
    // data: {...data, status: 1} // status: （0正常 1关闭）
  })
}
/**
 * @description: 删除业务待办
 * @param {object} data
 * @return {promise}
 */
export function delByBusinessId(data) {
  return request({
    url: `${unionApiUrl}/sysNotice/delByBusinessId`,
    method: 'post',
    data
  })
}


/**
 * 获取组织人员信息
 * @param parameter
 */
export function getOrgEmployee(parameter) {
  return request({
    url: organizationApiUrl + '/orgs/employees?',
    method: 'get',
    params: parameter
  })
}
/**
 * 获取组织人员
 * @param parameter
 */
export function getProjectStaff(parameter) {
  return request({
    url: projectApiUrl + '/projects/project-staff',
    method: 'get',
    params: parameter
  })
}

/**
 * 根据人员组织id查层级
 * @param parameter
 */
export function getOrgIdHierarchy(data) {
  return request2({
    url: organizationApiUrl + '/orgs/queryOrgByCodes',
    method: 'post',
    data: data
  })
}

/**
 * 获取组织人员详情信息
 * @param id
 */
export function getInfoByStaffId(id) {
  return request({
    url: organizationApiUrl + '/employees/detail',
    method: 'get',
    params: { id }
  })
}

/**
 * 根据用户获取员工信息
 * @param userId
 * @returns {AxiosPromise<any>}
 */
export function getOrgEmployeeByUser(userId) {
  return request.get(organizationApiUrl + '/employees/by-user?userId=' + userId)
}

/**
 * 获取员工列表信息
 * @param data
 */
export function getOrgEmployeesListBy(data) {
  return request.post(organizationApiUrl + '/employees/list-by', data)
}

/**
 * 获取参数字典
 * @param customerId
 */
export function getDictionaries(data) {
  return request({
    url: '/mock/13/dictionaries',
    method: 'get',
    data: data
  })
}

/**
 * 上传附件
 * @param data
 */
export function getAttachment(data) {
  return request({
    url: '/projects/project-attachment',
    method: 'post',
    data: data
  })
}

/**
 * 附件列表
 * @param data
 */
export function getAnnexList(data) {
  return request({
    url: '/mock/13/annex',
    method: 'get',
    data: data
  })
}

/**
 * 删除附件
 * @param data
 */
export function deleteAnnex(data) {
  return request({
    url: '/mock/13/annex',
    method: 'delete',
    data: data
  })
}


/**
 * 查询组织下的岗位列表
 * @param parameter
 */
export function getOrgPost(data) {
  return request({
    url: '/mock/22/posts/list-by-org',
    method: 'get',
    params: data
  })
}

/**
 * 根据分公司查询人员
 *
 */
export function getOrgUsers(data) {
  return request({
    url: organizationApiUrl + '/employees/page-by-org',
    method: 'get',
    params: data
  })
}

/**
 * 分页查询组织岗位下员工信息
 *
 */
export function pageByPost(data) {
  return request({
    url: organizationApiUrl + '/employees/page-by-post',
    method: 'get',
    params: data
  })
}


/**
 * 根据分公司查询人员
 *
 */
export function getOneOrgUsers(data) {
  return request2({
    url: organizationApiUrl + '/employees/pages-by-org',
    method: 'post',
    data: data
  })
}
/**
 * 根据项目查询人员
 *
 */
export function getProjectUsers(data) {
  return request({
    url: materialApiUrl + '/materials/people/query',
    // url: '/cscec-project-business/projects/employees/list',
    // url: '/cscec-project-business/project-job-employee/query',
    method: 'get',
    params: data
  })
}
/**
 * 根据多个组织查询人员
 *
 */
export function getListByOrgs(data) {
  return request2({
    url: organizationApiUrl + '/employees/list_by_orgs',
    method: 'post',
    data: data
  })
}


/**
 * 组织列表
 *
 */
export function orgList(data) {
  return request({
    url: organizationApiUrl + '/orgs/page',
    method: 'get',
    params: data
  })
}

/**
 *  组织机构获取项目部id
 * @param parameter
 */
export function getProjectIdFromOrg(data) {
  return request({
    url: organizationApiUrl + '/orgs/page',
    method: 'post',
    data: data
  })
}

/**
 * 评价表表头
 * @param parameter
 */
export function getHeaders(parameter) {
  return request({
    url: commonApiUrl + '/formTemplate/header-items',
    method: 'get',
    params: parameter
  })
}

/**
 * 评价表内容
 * @param parameter
 */
export function getContent(parameter) {
  return request({
    url: commonApiUrl + '/formTemplate/itemPage',
    method: 'get',
    params: parameter
  })
}

/**
 * 评价表内容
 * @param parameter
 */
export function getTypeLabel(parameter) {
  return request({
    url: commonApiUrl + '/types-label/query',
    method: 'get',
    params: parameter
  })
}


/**
 * 标签列表
 * @param parameter
 */
export function getTypeTrees(parameter) {
  return request({
    url: commonApiUrl + '/plan-label/labelTreeList',
    method: 'get',
    params: parameter
  })
}


/**
 * 标签列表
 * @param parameter
 */
export function getTypes(parameter) {
  return request({
    url: projectApisUrl + '/plan-label',
    method: 'get',
    params: parameter
  })
}

/**
 * 标签列表
 * @param parameter
 */
export function getLabelTypes(parameter) {
  return request({
    url: projectApisUrl + '/label',
    method: 'get',
    params: parameter
  })
}

/**
 * 标签列表
 * @param parameter
 */
export function getTechnicalTypes(parameter) {
  return request({
    url: projectApisUrl + '/technical-label',
    // url: projectApiUrl +'/technical-label',
    method: 'get',
    params: parameter
  })
}

/**
 * 标签列表
 * @param parameter
 */
export function getTypesLabel(parameter) {
  return request({
    url: projectApiUrl + '/label',
    method: 'get',
    params: parameter
  })
}




/**
 * 标签列表
 * @param parameter
 */
export function getUsersDetail(parameter) {
  return request({
    url: organizationApiUrl + '/employees/by-user',
    method: 'get',
    params: parameter
  })
}




// 获取-项目下人员列表
export function getOrganizePeopleList(params) {
  return request({
    url: projectApiUrl + '/projects/employees/list',
    method: 'get',
    params
  })
}

// 获取-项目下人员列表 去重(存在问题)
export function getOrganizeUserList(params) {
  return request({
    url: projectApiUrl + '/projects/employees/distinct/list',
    method: 'get',
    params
  })
}
// 获取-项目下人员列表 去重（速度快点）
export function getOrganizeUserListQuick(parameter) {
  return request({
    url: projectApiUrl + '/project-common/query-project-employees',
    method: 'post',
    data: parameter
  })
}
/**
 * 获取-所有分公司
 * @param parameter
 */
export function getAllBranchCompany(parameter) {
  return request({
    url: organizationApiUrl + '/orgs/queryOrgByIdOrTags',
    method: 'post',
    data: parameter
  })
}

/**
 * 获取当前登录人分公司，新接口
 */
export function getCurrentUserBranchCom2(data) {
  return request.post('/ycloud-organization/employees/queryOrgByCurrentUser', data)
}
/**
 * 获取当前登录人分公司，新接口3
 */
export function getCurrentUserBranchCom3(data) {
  return request2.post('/ycloud-organization/employees/queryOrgByCurrentUser', data)
}
/**
 * 根据orgId获取projectId
 */
export function getProjectIdByOrgId(params) {
  return request2({ url: 'cscec-safety-business/penalty_rate_account/getProjectIdByOrgId/' + params.id, params, method: 'get', })
}

/**
 * 获取-项目部下面的所有部门
 * @param parameter
 */
export function getDept(parameter) {
  return request({
    url: organizationApiUrl + '/orgs/children',
    method: 'get',
    params: parameter
  })
}

/**
 * 查询指定分公司下的人员  （参数：rootOrhId）
 * @param parameter
 */
export function getEmployeesList(parameter) {
  return request({
    url: organizationApiUrl + '/employees/list-by',
    method: 'post',
    data: parameter
  })
}

/**
 * 获取指定业务编码对应的上传目录
 * @param code
 */
export function getUploadPathByBusinessCode(code) {
  return request({
    url: `${commonApiUrl}/files/upload-path`,
    method: 'get',
    params: { code }
  })
}


/**
 * 获取岗位及其父级信息
 */
export function getPostParentName(params) {
  return request({
    url: organizationApiUrl + '/employees/getPostParentName',
    method: 'get',
    params: { ...params, isNewVersion: 1 } // 版本标识
  })
}

/**
 * 切换当前用户的岗位
 */
export function changeCurrentPost(data) {
  return request({
    url: organizationApiUrl + '/employees/changeCurrentPost',
    method: 'post',
    data
  })
}

/**
 * 获取人员岗位
 */
export function getOrgUserPosts(data) {
  return request({
    url: projectApiUrl + '/project-common/employee-info',
    method: 'post',
    data
  })
}

/**
 * 根据userId删除员工信息
 * @param {*} params
 */
export function deleteEmployeeByUserId(params) {
  return request({
    url: organizationApiUrl + '/employees/by-userId',
    method: 'post',
    params
  })
}

/**
 * 获取用户岗位列表，包含组织关系
 * @param {*} params
 */
export function getPostPNameByUser(params) {
  return request({
    url: organizationApiUrl + '/employees/posts-by-user',
    method: 'get',
    params
  })
}
/**
 * 查询员工绑定的主岗位
 * @param {*} params
 */
export function userMainPost(userId) {
  return request({
    url: organizationApiUrl + `/employees/by-user/mainPost?userId=${userId}`,
    method: 'get',
  })
}

/**
 * 获取流程审批节点上的处理人
 */
export function getProcessGroupPerson(data) {
  return request({
    url: commonApiUrl + '/process/assign-employee',
    method: 'post',
    data
  })
}

/**
 * 重置用户密码
 */
export function resetUserPwd(data) {
  return request({
    url: userApiUrl + '/users/pscode/forceReset',
    method: 'post',
    data
  })
}

/**
 * 获取上级组织
 */
export function getParentOrg(data) {
  return request({
    url: organizationApiUrl + '/orgs/find-by-childrenId',
    method: 'POST',
    data
  })
}

/**
 * 获取流程参数
 */
export function getProcessParams() {
  return request({
    url: commonApiUrl + '/process/other-post',
    method: 'post',
    unNotify: true
  })
}


/**
 * 获取项目组织树
 * */
export function queryProjectTree(data) {
  return request({
    url: 'cscec-project-business/project-common/query-project-tree',
    method: 'post',
    data
  })
}


/**
 * 根据条件获取项目组织树
 * */
export function queryProjectTreeByCondition(data) {
  return request({
    url: 'cscec-project-business/project-common/query-project-tree-by-condition',
    method: 'post',
    data
  })
}


